


    class Foo22 {

      // 静态属性
      static sBar = '父类静态属性sBar'
      // 私有属性
      #name = '父类私有属性#name'
      // 普通属性
      sex = '父类普通属性sex'
    
      // 获取器
      get name1 (){
        return this.#name
      }
    
      // 存储器
      set name1 (value){
          this.#name = value
      }
    
    
      // 静态方法bar
      static bar() {
        // 静态方法bar调用了this.baz，这里的this指的是Foo类，而不是Foo的实例，
        this.baz();
      }
      // 静态方法baz
      static baz() {
        console.log('父类的静态方法：baz');
      }
      // 普通方法baz
      baz() {
        console.log('父类：world#######'+this.#name);
      }
     // 普通方法bazf00
      bazf00() {
        // 谁调用就是谁
        this.baz()
      }
    }


    class SonFoo  extends Foo22{


      ssay(){
        // 2.私有属性和方法不能再派生类中使用，只能在自己的类内容使用
        // this.#name // 属性 "#name" 在类 "Foo22" 外部不可访问，因为它具有专用标识符。
      }
    }
    /**
 * 
 * 1. 子类对象和子类可是使用父类列项：
    父类的普通属性
    父类的普通方法
    父类的静态属性（需直接使用子类名调用）
    父类的静态方法（需直接使用子类名调用）
    父类的存取器
 */
    // 创建子类的对象
    let sf1 = new SonFoo()
    // 父类的普通属性
    console.log(sf1.sex);
    // 父类的普通方法
    sf1.bazf00()
    // 父类的存取器
    sf1.name1 = '刘家锦'
    console.log(sf1.name1);
    // 父类的静态属性（需直接使用子类名调用）
    console.log(SonFoo.sBar);
    // 父类的静态方法（需直接使用子类名调用）
    SonFoo.baz()
     
    
